package dao;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import bo.Itens_Estoque;

import exception.DataException;
import exception.DatabaseConnectException;
import exception.EmptyResultException;

public class Itens_EstoqueDAO {

	public ArrayList<Itens_Estoque> consultaTodosRegistros()
			throws DataException, DatabaseConnectException, EmptyResultException, SQLException {

		ArrayList<Itens_Estoque> estoques = null;
		PreparedStatement preparedStatement = null;
		ResultSet resultSet = null;

		try {
			preparedStatement = Conexao
					.getInst()
					.getConnection()
					.prepareStatement(
							"SELECT itens_estoque.id_estoque, itens_estoque.id_produto, itens_estoque.quantidade_produto "
									+ "FROM itens_estoque ORDER BY itens_estoque.id_produto;");
			
			resultSet = preparedStatement.executeQuery();
			
			if (!resultSet.next()) {
				throw new EmptyResultException();
			} else {
				estoques = new ArrayList<Itens_Estoque>();
			}
			
			while (resultSet.next()) {
				Itens_Estoque itens_estoque = new Itens_Estoque();
				itens_estoque.setId_estoque(resultSet.getInt(1));
				itens_estoque.setId_produto(resultSet.getInt(2));
				itens_estoque.setQuantidade_produto(resultSet.getInt(3));
				estoques.add(itens_estoque);
			}
			
		} catch (SQLException e) {
			throw new DataException(e, DataException.SELECT);
		} finally {
			resultSet.close();
			preparedStatement.close();
		}

		return estoques;

	}

}
